<?php

ini_set('include_path', '.');

require_once('env-parser.php');
require_once('file-util.php');
require_once('db-util.php');
require_once('app-util.php');

function admin_passwd_crypt($value)
{
    return md5($value);
}

function staff_passwd_crypt($value)
{
    return md5($value);
}


$config_files 		= array( '/' => array( array('config.inc.php', 'config/settings.php'), array('files.inc.php', 'images/files.gif')) );
$reconfig_files 	= array(  );
$schema_files 		= array( 'schema.sql' => 'main' );
$reconf_schema_files	= array( 'reconfigure.sql' => 'main' );
$remove_schema_files	= array( 'remove.sql' => 'main' );

$psa_params 		= array (  );
$db_ids 		= array ( 'main' );
$web_ids 		= array ( 'custom', 'styles', 'styles/coolgreen.css', 'styles/aquablue.css', 'styles/meroon.css', 'attachments', 'backup', 'downloads', 'csvfiles', 'admin/purgedtickets', 'admin/purgedtickets/attachments', 'keys/key.txt', '/' );
$settings_params 	= array ( 'admin_name', 'admin_email', 'staff_email', 'site_name' );
$settings_enum_params 	= array ( 'locale' => array( 'en-US' => 'english') );
$crypt_settings_params 	= array ( 'admin_passwd', 'staff_passwd' );

$psa_modify_hash 			= get_psa_modify_hash($psa_params);
$db_modify_hash 			= get_db_modify_hash($db_ids);
$web_modify_hash 			= get_web_modify_hash($web_ids);
$settings_modify_hash 		= get_settings_modify_hash($settings_params);
$settings_enum_modify_hash 	= get_settings_enum_modify_hash($settings_enum_params);
$crypt_settings_modify_hash = get_crypt_settings_modify_hash($crypt_settings_params);

$license_modify_hash	 = get_license_modify_hash();

if(count($argv) < 2)
{
    print "Usage: configure (install | upgrade <version> | configure | remove)\n";
    exit(1);
}

$command = $argv[1];

if($command == "upgrade")
{
    print "FIXME: $command is not implemented.\n";
    exit(1);
}

if($command == "install")
{
    configure($config_files, $schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash, $license_modify_hash);
    exit(0);
}

if($command == "remove")
{
    remove_app($remove_schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash);
    exit(0);
}

if($command == "configure")
{
    reconfigure($reconfig_files, $reconf_schema_files, $db_ids, $psa_modify_hash, $db_modify_hash, $settings_modify_hash, $crypt_settings_modify_hash, $settings_enum_modify_hash);
    exit(0);
}

print "Error: unknown command $command.\n";
exit(1);

?>